import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import path from 'path'

// https://vite.dev/config/
export default defineConfig({
    plugins: [
        vue(),
        vueDevTools(),
        createSvgIconsPlugin({
            // 指定图标文件夹路径（绝对路径）
            iconDirs: [path.resolve(process.cwd(), 'src/icons')],
            // 指定 symbolId 格式
            symbolId: 'icon-[name]',
            // 自定义插入位置
            inject: 'body-last',
            // 自定义 DOM 结构 ID
            customDomId: '__svg_icons__dom'
        })
    ],
    resolve: {
        alias: {
            '@': fileURLToPath(new URL('./src', import.meta.url))
        },
    },
    server: {
        open: true,
        port: 9000,
        // 开发服务器代理配置
        proxy: {
            // 代理所有 /api 开头的请求
            '/api': {
                target: 'http://121.43.126.27:8081', // 后端服务器地址（不要包含 /api）
                changeOrigin: true, // 是否改变请求域名
                rewrite: (path) => path, // 保持原路径不变
                // 配置代理日志
                configure: (proxy, options) => {
                    proxy.on('proxyReq', (proxyReq, req, res) => {
                        console.log('📤 代理请求:', req.method, req.url, '→', options.target + req.url)
                    })
                    proxy.on('proxyRes', (proxyRes, req, res) => {
                        console.log('📥 代理响应:', proxyRes.statusCode, req.url)
                    })
                    proxy.on('error', (err, req, res) => {
                        console.error('❌ 代理错误:', err.message)
                    })
                }
            }
        }
    }
})
